package cn.highedu.spring03.controller;

import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class AnnotationController {
    /**
     * @param param1 参数使用了@RequestParam注解, 在访问该请求的时候 必须传入该参数 否则出现400错误(请求不完整)
     * @param param2 参数使用了@RequestHeader注解, 参数是请求头的一部分 不传也会出现400错误
     * @return
     */
    @GetMapping("/demo1")
    public String hello(@RequestParam String param1, String param2) {
        System.out.println("param1 = " + param1);
        System.out.println("param2 = " + param2);
        // 当前的类和方法没有使用@ResonseBody注解 返回值需要直接映射一个文件
        return "hello"; // 映射到/resources/static/hello.html
    }

    @GetMapping("/demo2")
    public String demo2() {
        return "demo2";
    }

    @GetMapping("/excel")
    @ResponseBody
    public XSSFWorkbook excel() {
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet("Demo");
        sheet.createRow(0).createCell(0).setCellValue("Hello World");
        return workbook;
    }
}
